package com.thinksns.sociax.t4.android.api;

import com.loopj.android.http.AsyncHttpResponseHandler;
import com.thinksns.sociax.t4.exception.UpdateException;
import com.thinksns.sociax.t4.exception.VerifyErrorException;
import com.thinksns.sociax.t4.model.ModelBackMessage;
import com.thinksns.sociax.t4.model.ModelComment;
import com.thinksns.sociax.thinksnsbase.bean.ListData;
import com.thinksns.sociax.thinksnsbase.bean.SociaxItem;
import com.thinksns.sociax.thinksnsbase.exception.ApiException;
import com.thinksns.sociax.thinksnsbase.network.ApiHttpClient;

/**
 * 类说明：资讯
 * Created by Zoey on 2016-04-27.
 */
public interface ApiInformation {

    static final String MOD_NAME = "Information";
    static final String GET_CATE = "newsCate";//获取分类
    static final String GET_CATE_LIST = "newsList";//获取分类列表
    static final String INFORMATION_DETAILS = "informationDetail";//获取资讯详情
    static final String ADD_COMMENT = "addComment"; // 添加评论
    static final String DELETE_COMMENT = "delComment"; // 删除评论

    /**
     * 获取资讯分类
     *
     * @return
     * @throws ApiException
     */
    public void getCate(final ApiHttpClient.HttpResponseListener listener) throws ApiException;

//    /**
//     * 获取分类列表
//     *
//     * @param cid      分类id
//     * @param max_id     最后一条数据的id
//     * @param listener
//     * @return
//     * @throws ApiException
//     */
//    public void getCateList(int cid, int max_id, final ApiHttpClient.HttpResponseListener listener) throws ApiException;
    /**
     * 获取分类列表
     *
     * @param cid      分类id
     * @param max_id     最后一条数据的id
     * @param handler
     * @return
     * @throws ApiException
     */
    public void getCateList(int cid, int max_id, final AsyncHttpResponseHandler handler);

    /**
     * 获取资讯详情
     * @param id 资讯 id
     * @param max_id 加载评论更多，评论 id
     * @param listener
     */
    public void getInformationDetails(int id, int max_id, final ApiHttpClient.HttpResponseListener listener);
    /**
     * 添加评论
     * @param information_id 资讯id
     * @param comment 添加的评论内容
     * @return
     * @throws ApiException
     * @throws VerifyErrorException
     * @throws UpdateException
     */
    public ModelBackMessage addComment(int information_id, ModelComment comment)throws ApiException, VerifyErrorException, UpdateException;

    /**
     * 删除帖子评论
     * @param commentId
     * @param listener
     */
    public void deleteComment(int commentId, final ApiHttpClient.HttpResponseListener listener);
}
